#ifndef EEZ_LVGL_UI_SCREENS_H
#define EEZ_LVGL_UI_SCREENS_H

#include <lvgl/lvgl.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct _objects_t {
    lv_obj_t *main;
    lv_obj_t *menu;
    lv_obj_t *health;
    lv_obj_t *record;
    lv_obj_t *bluetooth;
    lv_obj_t *countdown;
    lv_obj_t *stopwatch;
    lv_obj_t *system;
    lv_obj_t *obj0;
    lv_obj_t *obj1;
    lv_obj_t *obj2;
    lv_obj_t *obj3;
    lv_obj_t *obj4;
    lv_obj_t *battery;
    lv_obj_t *obj5;
    lv_obj_t *year;
    lv_obj_t *mon_day;
    lv_obj_t *week;
    lv_obj_t *time;
    lv_obj_t *hour;
    lv_obj_t *min;
    lv_obj_t *steps;
    lv_obj_t *steps_num;
    lv_obj_t *obj6;
    lv_obj_t *obj7;
    lv_obj_t *obj8;
    lv_obj_t *hour_min;
    lv_obj_t *battery_1;
    lv_obj_t *obj9;
    lv_obj_t *obj10;
    lv_obj_t *obj11;
    lv_obj_t *obj12;
    lv_obj_t *obj13;
    lv_obj_t *obj14;
    lv_obj_t *obj15;
    lv_obj_t *obj16;
    lv_obj_t *obj17;
    lv_obj_t *obj18;
    lv_obj_t *obj19;
    lv_obj_t *obj20;
    lv_obj_t *obj21;
    lv_obj_t *obj22;
    lv_obj_t *obj23;
    lv_obj_t *hour_min_1;
    lv_obj_t *battery_2;
    lv_obj_t *obj24;
    lv_obj_t *obj25;
    lv_obj_t *obj26;
    lv_obj_t *obj27;
    lv_obj_t *obj28;
    lv_obj_t *obj29;
    lv_obj_t *obj30;
    lv_obj_t *obj31;
    lv_obj_t *obj32;
    lv_obj_t *obj33;
    lv_obj_t *obj34;
    lv_obj_t *hour_min_2;
    lv_obj_t *battery_3;
    lv_obj_t *obj35;
    lv_obj_t *obj36;
    lv_obj_t *obj37;
    lv_obj_t *obj38;
    lv_obj_t *hour_min_3;
    lv_obj_t *battery_4;
    lv_obj_t *obj39;
    lv_obj_t *obj40;
    lv_obj_t *obj41;
    lv_obj_t *hour_min_4;
    lv_obj_t *battery_5;
    lv_obj_t *obj42;
    lv_obj_t *obj43;
    lv_obj_t *obj44;
    lv_obj_t *obj45;
    lv_obj_t *obj46;
    lv_obj_t *hour_min_5;
    lv_obj_t *battery_6;
    lv_obj_t *obj47;
    lv_obj_t *obj48;
    lv_obj_t *obj49;
    lv_obj_t *obj50;
    lv_obj_t *obj51;
    lv_obj_t *obj52;
    lv_obj_t *obj53;
    lv_obj_t *hour_min_6;
    lv_obj_t *battery_7;
    lv_obj_t *obj54;
    lv_obj_t *obj55;
    lv_obj_t *obj56;
    lv_obj_t *obj57;
    lv_obj_t *obj58;
    lv_obj_t *obj59;
    lv_obj_t *obj60;
    lv_obj_t *obj61;
    lv_obj_t *obj62;
} objects_t;

extern objects_t objects;

enum ScreensEnum {
    SCREEN_ID_MAIN = 1,
    SCREEN_ID_MENU = 2,
    SCREEN_ID_HEALTH = 3,
    SCREEN_ID_RECORD = 4,
    SCREEN_ID_BLUETOOTH = 5,
    SCREEN_ID_COUNTDOWN = 6,
    SCREEN_ID_STOPWATCH = 7,
    SCREEN_ID_SYSTEM = 8,
};

void create_screen_main();
void tick_screen_main();

void create_screen_menu();
void tick_screen_menu();

void create_screen_health();
void tick_screen_health();

void create_screen_record();
void tick_screen_record();

void create_screen_bluetooth();
void tick_screen_bluetooth();

void create_screen_countdown();
void tick_screen_countdown();

void create_screen_stopwatch();
void tick_screen_stopwatch();

void create_screen_system();
void tick_screen_system();

void tick_screen_by_id(enum ScreensEnum screenId);
void tick_screen(int screen_index);

void create_screens();


#ifdef __cplusplus
}
#endif

#endif /*EEZ_LVGL_UI_SCREENS_H*/